package com.sqfw.project.knowledge.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sqfw.project.system.domain.SysDept;
import com.sqfw.project.system.domain.SysUser;
import lombok.Data;
import com.sqfw.framework.aspectj.lang.annotation.Excel;
import com.sqfw.framework.web.domain.BaseEntity;

import javax.validation.constraints.NotNull;

/**
 * 知识对象 kl_content_info
 *
 * @author tangxt
 * @date 2023-06-07
 */
@Data
public class KlContentInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private String klId;

    /** 标题 */
    @NotNull(message = "标题不能为空")
    @Excel(name = "知识标题")
    private String klContentTitle;

    /** 关键字 */
    @NotNull(message = "关键字不能为空")
    @Excel(name = "关键字")
    private String klContentKeyword;

    /** 分类id */
    @NotNull(message = "分类id不能为空")
    private String klSortId;

    /** 知识内容 */
    @Excel(name = "知识内容")
    private String klContent;

    private StringBuffer klContent2;

    /** 有效期 */
    @NotNull(message = "有效期不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date klContentValiditytime;

    /** 知识形式   "0":"政策法规","1":"服务机构","2":"名词解释","3":"办事指南","4":"便民问答","5":"其他" */
    private String klContentType;

    /** $column.columnComment */
    private String klContentIsindex;

    /** 紧急程度0：一般；1：紧急 */
    private String klContentLevel;

    /** 来源:所属组织机构 ---创建人部门id*/
    private String klContentSources;

    /** 来源方式:1.界面录入2.数据接口3.webservice接口 */
    private String klContentSourcesType;

    /** 6 待审核, 1 审核通过, -2 审核未通过, 2 删除待审核 */
    private String klContentStatus;

    /** 创建人 */
    private String klContentCreater;

    /** 创建人姓名 kl_content_creater_name--真实姓名 */
    @Excel(name = "创建人姓名")
    private String klContentCreaterName;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date klContentCreatetime;

    /** 修改人 */
    private String klContentUpdater;

    /** 修改日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date klContentUpdatetime;

    /** 发布日期 */
    @NotNull(message = "发布日期不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date klContentPublishtime;

    /** 是否重要--是否热点 （1是0否） */
    private String klContentIshot;

    /** 操作类型(知识类型) A-新增 M-修改 D-删除 C-核实 */
    private String klContentOpeType;

    /** 是否删除 0 正常 1删除 */
    private String klContentIsDel;

    /** $column.columnComment */
    private String klContentAddedkeyword;

    /** 推送状态，-1，不需推送，0：需推送，待审核，1：待推送，2：推送成功，3：推送失败 */
    private String isSend;

    /** $column.columnComment */
    private String extend2;

    /** $column.columnComment */
    private String extend3;

    /** $column.columnComment */
    private String klContentTypeName;

    /** 知识来源名称(知识来源): */
    private String klContentBelongUnit;

    /** 是否置顶（0否，1是） */
    private String klContentIstop;

    /** 是否上报给12345（0否，1是） */
    private String klContentIshotline;

    /** $column.columnComment */
    private String isnews;

    /** $column.columnComment */
    private String glname;

    /** $column.columnComment */
    private String glid;

    /** $column.columnComment */
    private String glid1;

    /** $column.columnComment */
    private String glname1;

    /** $column.columnComment */
    private String glid2;

    /** $column.columnComment */
    private String glname2;

    /** 政策文号 */
    private String policyNo;

    /** 总条数 */
    private String klTotal;

    /** [属性] 相关工单编号 */
    private String relWpid;

    /** 审核人员 */
    private String klContentReviewer;

    /** 审核的开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date klContentReviewertime;

    /**
     * 知识关联知识id，用,号隔开(英文逗号)
     * */
    private String klKnowledgeCorrelationId;

    /** 更新周期(180:半年，365：一年) */
    @NotNull(message = "更新周期(180:半年，365：一年， 5 * 365(1825)：五年)不能为空")
    private String klUpdateCycle;

    /** 核实时间--新增，该时间就是分布时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date klVerifyTime;

    /** 是否案例(1-是；0-不是) */
    @NotNull(message = "是否案例(1-是；0-不是)不能为空")
    private String isCase;

    /** 开始核实时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date klStartVerifyTime;

    /** 点击量 */
    private Long klContentHits;

    /** 评分 */
    private Double klContentScore;

    /** 是否是三级承办单位主动添加的知识(1(true)：是；0(false):不是(默认)) */
    private Boolean isActiveAdd;

    //------------------------展示，传递的字段

    /**
     * 查询条件: 创建开始时间
     * */
    private String startCreateTime;

    /**
     * 查询条件：创建结束时间
     * */
    private String endCreateTime;

    /**
     * 查询条件: 修改开始时间
     * */
    private String startUpdateTime;

    /**
     * 查询条件：修改结束时间
     * */
    private String endUpdateTime;

    /** 核实时间：开始*/
    private String startVerifyTime;

    /** 核实时间：结束*/
    private String endVerifyTime;

    /**
     * 查询条件: 发布开始时间
     * */
    private String startPublishTime;

    /**
     * 查询条件：发布结束时间
     * */
    private String endPublishTime;

    /** 创建人账号 */
    private String userName;

    /**
     * 真实姓名--Real name
     */
    private String realName;

    /** 审核人用户名 */
    private String reviewName;

    /** 分类名称 */
    @Excel(name = "知识分类")
    private String klSortName;

    /** 分类idList */
    private List<String> klSortIdList;

    /**
     * 知识关联的知识数据
     * */
    private List<KlContentInfo> klKnowledgeCorrelationList;

    /**
     * 是否失效，true: 失效，false: 没有失效
     * */
    private Boolean isLoseEfficacy = false;

    /**
     * 批量锁定；批量审核的知识id
     * */
    private List<String> klIdList;

    /**
     * 审核意见-Review comments
     * */
    private String reviewComment;

    /**
     * 审核状态日志数据
     * */
    private List<KlContentStatusLog> statusLogList;

    /**
     * 用户数据
     * */
    private SysUser sysUser;

    /**
     * 部门信息
     * */
    private SysDept sysDept;

    /** 6 待审核, 1 审核通过, -2 审核未通过, 2 删除待审核 */
    @Excel(name = "审核状态")
    private String klContentStatusDesc;

    /**
     * 排序类型
     *  KL_SCORE--评分
     *  KL_HITS--点击量
     * */
    private String sortType;

    /**
     * 评价人数
     * Number
     */
    private int scoreNumber;

    /**
     * 是否有效（是否在线）: true--有效; false--失效
     * */
    private Boolean isValidity;

    /**
     * 关联的文件
     * */
    List<KlContentFileInfo> fileList;

    /**
     * 关联的知识标题List
     *
     */
    List<String> klTitleList;

    /** 操作类型(知识类型) A 新增 M修改 D删除 C核实*/
    private String klContentOpeTypeDesc;

    /** 给前端展示多级的知识分类id*/
    String klSortIds;

    /** 是否是 点击纠错 进行的修改/知识查询点击修改（这两个地方 审核通过也可以修改的）*/
    private Boolean isCorrection;

    /** cms知识附件名称 */
    private String zwPDFName;

    /** cms知识附件链接 */
    private String zwPDFUrl;

// -----------------导出使用

    /** 知识形式   "0":"政策法规","1":"服务机构","2":"名词解释","3":"办事指南","4":"便民问答","5":"其他" */
    @Excel(name = "知识形式")
    private String klContentTypeDesc;


    /** 来源:所属组织机构 ---部门名称(所属单位名称)*/
    @Excel(name = "所属单位")
    private String klContentSourcesName;

    /**
     * 是否有效，true: 失效-否，false: 没有失效-是
     * 默认是有效
     * */
    @Excel(name = "有效")
    private String isLoseEfficacyDesc = "是";

    /** 是否删除 0 正常-否 1删除-是 */
    @Excel(name = "删除")
    private String klContentIsDelDesc = "否";

   //------------------------添加的字段

    /**
     * 关联的文件id List
     * */
    List<String> fileIdList;

    /**
     *  核实页面，点击核实或者处理
     * VERIFY:核实；HANDLE：处理
     * */
    private String clickType;

    /** 是否是查询我的知识案例：true--是， false--否*/
    private Boolean isMyCase;

}
